Successful Evolution of Software Systems
نویسندگان
چکیده
ness measures Abstractness measures are in a central positionfor both reverse engineering measures and the five categories, becauseabstraction and transformation are significant notions in reverse engineer-ing, crossing the entire reverse engineering process. Both abstraction andtransformation are used to enhance the abstraction level of the software. Abstractness measures are mainly used to measure the abstractness ofan object program, which is related to characteristics of complexity. Inreverse engineering, abstractness measures are concentrated on structuralabstraction, which shows the abstraction level of the program by analyzingthe structure of the program (i.e., by accounting and processing the internalmechanism of a system or program). This includes control flow (connec-tions among nodes, branches, and loops) and data flow (the degree ofabstraction of the data). Also, abstractness is a direct index of theunderstandability, which relates to cognitive complexity (measuring theweight of high abstract-level constructs in the program). The main propertyof abstractions and transformations in the reverse engineering process ishiding irrelevant information. Therefore, to represent hidden irrelevantinformation numerically is a means of measuring the indicated abstractness.Also, values of abstractness are always increasing following reducing thenumber of pieces of irrelevant information (i.e., reflecting the raisingabstract level as indices).ness measures are mainly used to measure the abstractness ofan object program, which is related to characteristics of complexity. Inreverse engineering, abstractness measures are concentrated on structuralabstraction, which shows the abstraction level of the program by analyzingthe structure of the program (i.e., by accounting and processing the internalmechanism of a system or program). This includes control flow (connec-tions among nodes, branches, and loops) and data flow (the degree ofabstraction of the data). Also, abstractness is a direct index of theunderstandability, which relates to cognitive complexity (measuring theweight of high abstract-level constructs in the program). The main propertyof abstractions and transformations in the reverse engineering process ishiding irrelevant information. Therefore, to represent hidden irrelevantinformation numerically is a means of measuring the indicated abstractness.Also, values of abstractness are always increasing following reducing thenumber of pieces of irrelevant information (i.e., reflecting the raisingabstract level as indices). Abstractness metric 1: Abstractness based on McCabe’s cyclomaticcomplexity measure (ABST-MCCM)ness metric 1: Abstractness based on McCabe’s cyclomaticcomplexity measure (ABST-MCCM) Definition 7.12 The reciprocal of the number of linearly independentcircuits in a program flowgraph, which is calculated based on McCabe’scyclomatic complexity measure [61].160Process for Evolution
منابع مشابه
Studying Software Evolution Using Clone Detection
In modern software engineering, researchers regard a software system as an organic life form that must continue to evolve to remain successful. Unfortunately, little is known about how successful software systems have evolved, and consequently little has been learned from previous experience. In this paper, we demonstrate a heuristic to reconstruct evolution processes of existing software syste...
متن کاملReconstruction of Successful Software Evolution Using Clone Detection
In modern software engineering, researchers regard a software system as an organic life form that must continue to evolve to remain successful. Unfortunately, little is known about how successful software systems have evolved, and consequently little has been learned from previous experience. In this paper, we demonstrate a heuristic to reconstruct evolution processes of existing software syste...
متن کاملConstraint Based Transformation Theory
During the last 25 years the complexity and functionality of software systems has increased dramatically. Software systems have to be updated and restructured continuously [22]. In some cases it might be a solution to implement a completely new system from scratch but in the majority of cases the costs and the risks are too high and a solution for successful software evolution is needed [76]. N...
متن کامل4th International ERCIM Workshop on Software Evolution and Evolvability (Evol'08)
Research in software evolution and evolvability has been thriving over the past few years, with a stream of new formalisms, tools, techniques, and development methodologies. On the one hand, these new techniques aim to facilitate the way long-lived successful software systems can be changed in order to cope with demands from users as well as the increasing complexity and volatility of the conte...
متن کاملEvolution Patterns: Designing and Reusing Architectural Evolution Knowledge to Introduce Architectural Styles
Software architectures are critical in the successful development and evolution of software-intensive systems. While formal and automated support for architectural descriptions has been widely addressed, their evolution is equally crucial, but significantly less well-understood and supported. In order to face a recurring evolution need, we introduce the concept of evolution pattern. It formalis...
متن کاملLessons in Software Evolution Learned by Listening to Smalltalk
The biggest challenge facing software developers today is how to gracefully evolve complex software systems in the face of changing requirements. We clearly need software systems to be more dynamic, compositional and model-centric, but instead we continue to build systems that are static, baroque and inflexible. How can we better build change-enabled systems in the future? To answer this questi...
متن کامل